﻿using System;
using System.Collections.Generic;
using System.Text;

namespace vJine.Core.ORM.Adapters {

    public partial class PGSQL : IDbAdapter<PGSQL> {
        static List<string> _KeyWords = new List<string>();
        //http://www.postgresql.org/docs/9.3/static/sql-keywords-appendix.html
        static void Init_Keywords() {
            _KeyWords.Add("A");
            _KeyWords.Add("ABORT");
            _KeyWords.Add("ABS");
            _KeyWords.Add("ABSENT");
            _KeyWords.Add("ABSOLUTE");
            _KeyWords.Add("ACCESS");
            _KeyWords.Add("ACCORDING");
            _KeyWords.Add("ACTION");
            _KeyWords.Add("ADA");
            _KeyWords.Add("ADD");
            _KeyWords.Add("ADMIN");
            _KeyWords.Add("AFTER");
            _KeyWords.Add("AGGREGATE");
            _KeyWords.Add("ALL");
            _KeyWords.Add("ALLOCATE");
            _KeyWords.Add("ALSO");
            _KeyWords.Add("ALTER");
            _KeyWords.Add("ALWAYS");
            _KeyWords.Add("ANALYSE");
            _KeyWords.Add("ANALYZE");
            _KeyWords.Add("AND");
            _KeyWords.Add("ANY");
            _KeyWords.Add("ARE");
            _KeyWords.Add("ARRAY");
            _KeyWords.Add("ARRAY_AGG");
            _KeyWords.Add("ARRAY_MAX_CARDINALITY");
            _KeyWords.Add("AS");
            _KeyWords.Add("ASC");
            _KeyWords.Add("ASENSITIVE");
            _KeyWords.Add("ASSERTION");
            _KeyWords.Add("ASSIGNMENT");
            _KeyWords.Add("ASYMMETRIC");
            _KeyWords.Add("AT");
            _KeyWords.Add("ATOMIC");
            _KeyWords.Add("ATTRIBUTE");
            _KeyWords.Add("ATTRIBUTES");
            _KeyWords.Add("AUTHORIZATION");
            _KeyWords.Add("AVG");
            _KeyWords.Add("BACKWARD");
            _KeyWords.Add("BASE64");
            _KeyWords.Add("BEFORE");
            _KeyWords.Add("BEGIN");
            _KeyWords.Add("BEGIN_FRAME");
            _KeyWords.Add("BEGIN_PARTITION");
            _KeyWords.Add("BERNOULLI");
            _KeyWords.Add("BETWEEN");
            _KeyWords.Add("BIGINT");
            _KeyWords.Add("BINARY");
            _KeyWords.Add("BIT");
            _KeyWords.Add("BIT_LENGTH");
            _KeyWords.Add("BLOB");
            _KeyWords.Add("BLOCKED");
            _KeyWords.Add("BOM");
            _KeyWords.Add("BOOLEAN");
            _KeyWords.Add("BOTH");
            _KeyWords.Add("BREADTH");
            _KeyWords.Add("BY");
            _KeyWords.Add("C");
            _KeyWords.Add("CACHE");
            _KeyWords.Add("CALL");
            _KeyWords.Add("CALLED");
            _KeyWords.Add("CARDINALITY");
            _KeyWords.Add("CASCADE");
            _KeyWords.Add("CASCADED");
            _KeyWords.Add("CASE");
            _KeyWords.Add("CAST");
            _KeyWords.Add("CATALOG");
            _KeyWords.Add("CATALOG_NAME");
            _KeyWords.Add("CEIL");
            _KeyWords.Add("CEILING");
            _KeyWords.Add("CHAIN");
            _KeyWords.Add("CHAR");
            _KeyWords.Add("CHARACTER");
            _KeyWords.Add("CHARACTERISTICS");
            _KeyWords.Add("CHARACTERS");
            _KeyWords.Add("CHARACTER_LENGTH");
            _KeyWords.Add("CHARACTER_SET_CATALOG");
            _KeyWords.Add("CHARACTER_SET_NAME");
            _KeyWords.Add("CHARACTER_SET_SCHEMA");
            _KeyWords.Add("CHAR_LENGTH");
            _KeyWords.Add("CHECK");
            _KeyWords.Add("CHECKPOINT");
            _KeyWords.Add("CLASS");
            _KeyWords.Add("CLASS_ORIGIN");
            _KeyWords.Add("CLOB");
            _KeyWords.Add("CLOSE");
            _KeyWords.Add("CLUSTER");
            _KeyWords.Add("COALESCE");
            _KeyWords.Add("COBOL");
            _KeyWords.Add("COLLATE");
            _KeyWords.Add("COLLATION");
            _KeyWords.Add("COLLATION_CATALOG");
            _KeyWords.Add("COLLATION_NAME");
            _KeyWords.Add("COLLATION_SCHEMA");
            _KeyWords.Add("COLLECT");
            _KeyWords.Add("COLUMN");
            _KeyWords.Add("COLUMNS");
            _KeyWords.Add("COLUMN_NAME");
            _KeyWords.Add("COMMAND_FUNCTION");
            _KeyWords.Add("COMMAND_FUNCTION_CODE");
            _KeyWords.Add("COMMENT");
            _KeyWords.Add("COMMENTS");
            _KeyWords.Add("COMMIT");
            _KeyWords.Add("COMMITTED");
            _KeyWords.Add("CONCURRENTLY");
            _KeyWords.Add("CONDITION");
            _KeyWords.Add("CONDITION_NUMBER");
            _KeyWords.Add("CONFIGURATION");
            _KeyWords.Add("CONNECT");
            _KeyWords.Add("CONNECTION");
            _KeyWords.Add("CONNECTION_NAME");
            _KeyWords.Add("CONSTRAINT");
            _KeyWords.Add("CONSTRAINTS");
            _KeyWords.Add("CONSTRAINT_CATALOG");
            _KeyWords.Add("CONSTRAINT_NAME");
            _KeyWords.Add("CONSTRAINT_SCHEMA");
            _KeyWords.Add("CONSTRUCTOR");
            _KeyWords.Add("CONTAINS");
            _KeyWords.Add("CONTENT");
            _KeyWords.Add("CONTINUE");
            _KeyWords.Add("CONTROL");
            _KeyWords.Add("CONVERSION");
            _KeyWords.Add("CONVERT");
            _KeyWords.Add("COPY");
            _KeyWords.Add("CORR");
            _KeyWords.Add("CORRESPONDING");
            _KeyWords.Add("COST");
            _KeyWords.Add("COUNT");
            _KeyWords.Add("COVAR_POP");
            _KeyWords.Add("COVAR_SAMP");
            _KeyWords.Add("CREATE");
            _KeyWords.Add("CROSS");
            _KeyWords.Add("CSV");
            _KeyWords.Add("CUBE");
            _KeyWords.Add("CUME_DIST");
            _KeyWords.Add("CURRENT");
            _KeyWords.Add("CURRENT_CATALOG");
            _KeyWords.Add("CURRENT_DATE");
            _KeyWords.Add("CURRENT_DEFAULT_TRANSFORM_GROUP");
            _KeyWords.Add("CURRENT_PATH");
            _KeyWords.Add("CURRENT_ROLE");
            _KeyWords.Add("CURRENT_ROW");
            _KeyWords.Add("CURRENT_SCHEMA");
            _KeyWords.Add("CURRENT_TIME");
            _KeyWords.Add("CURRENT_TIMESTAMP");
            _KeyWords.Add("CURRENT_TRANSFORM_GROUP_FOR_TYPE");
            _KeyWords.Add("CURRENT_USER");
            _KeyWords.Add("CURSOR");
            _KeyWords.Add("CURSOR_NAME");
            _KeyWords.Add("CYCLE");
            _KeyWords.Add("DATA");
            _KeyWords.Add("DATABASE");
            _KeyWords.Add("DATALINK");
            _KeyWords.Add("DATE");
            _KeyWords.Add("DATETIME_INTERVAL_CODE");
            _KeyWords.Add("DATETIME_INTERVAL_PRECISION");
            _KeyWords.Add("DAY");
            _KeyWords.Add("DB");
            _KeyWords.Add("DEALLOCATE");
            _KeyWords.Add("DEC");
            _KeyWords.Add("DECIMAL");
            _KeyWords.Add("DECLARE");
            _KeyWords.Add("DEFAULT");
            _KeyWords.Add("DEFAULTS");
            _KeyWords.Add("DEFERRABLE");
            _KeyWords.Add("DEFERRED");
            _KeyWords.Add("DEFINED");
            _KeyWords.Add("DEFINER");
            _KeyWords.Add("DEGREE");
            _KeyWords.Add("DELETE");
            _KeyWords.Add("DELIMITER");
            _KeyWords.Add("DELIMITERS");
            _KeyWords.Add("DENSE_RANK");
            _KeyWords.Add("DEPTH");
            _KeyWords.Add("DEREF");
            _KeyWords.Add("DERIVED");
            _KeyWords.Add("DESC");
            _KeyWords.Add("DESCRIBE");
            _KeyWords.Add("DESCRIPTOR");
            _KeyWords.Add("DETERMINISTIC");
            _KeyWords.Add("DIAGNOSTICS");
            _KeyWords.Add("DICTIONARY");
            _KeyWords.Add("DISABLE");
            _KeyWords.Add("DISCARD");
            _KeyWords.Add("DISCONNECT");
            _KeyWords.Add("DISPATCH");
            _KeyWords.Add("DISTINCT");
            _KeyWords.Add("DLNEWCOPY");
            _KeyWords.Add("DLPREVIOUSCOPY");
            _KeyWords.Add("DLURLCOMPLETE");
            _KeyWords.Add("DLURLCOMPLETEONLY");
            _KeyWords.Add("DLURLCOMPLETEWRITE");
            _KeyWords.Add("DLURLPATH");
            _KeyWords.Add("DLURLPATHONLY");
            _KeyWords.Add("DLURLPATHWRITE");
            _KeyWords.Add("DLURLSCHEME");
            _KeyWords.Add("DLURLSERVER");
            _KeyWords.Add("DLVALUE");
            _KeyWords.Add("DO");
            _KeyWords.Add("DOCUMENT");
            _KeyWords.Add("DOMAIN");
            _KeyWords.Add("DOUBLE");
            _KeyWords.Add("DROP");
            _KeyWords.Add("DYNAMIC");
            _KeyWords.Add("DYNAMIC_FUNCTION");
            _KeyWords.Add("DYNAMIC_FUNCTION_CODE");
            _KeyWords.Add("EACH");
            _KeyWords.Add("ELEMENT");
            _KeyWords.Add("ELSE");
            _KeyWords.Add("EMPTY");
            _KeyWords.Add("ENABLE");
            _KeyWords.Add("ENCODING");
            _KeyWords.Add("ENCRYPTED");
            _KeyWords.Add("END");
            _KeyWords.Add("END-EXEC");
            _KeyWords.Add("END_FRAME");
            _KeyWords.Add("END_PARTITION");
            _KeyWords.Add("ENFORCED");
            _KeyWords.Add("ENUM");
            _KeyWords.Add("EQUALS");
            _KeyWords.Add("ESCAPE");
            _KeyWords.Add("EVENT");
            _KeyWords.Add("EVERY");
            _KeyWords.Add("EXCEPT");
            _KeyWords.Add("EXCEPTION");
            _KeyWords.Add("EXCLUDE");
            _KeyWords.Add("EXCLUDING");
            _KeyWords.Add("EXCLUSIVE");
            _KeyWords.Add("EXEC");
            _KeyWords.Add("EXECUTE");
            _KeyWords.Add("EXISTS");
            _KeyWords.Add("EXP");
            _KeyWords.Add("EXPLAIN");
            _KeyWords.Add("EXPRESSION");
            _KeyWords.Add("EXTENSION");
            _KeyWords.Add("EXTERNAL");
            _KeyWords.Add("EXTRACT");
            _KeyWords.Add("FALSE");
            _KeyWords.Add("FAMILY");
            _KeyWords.Add("FETCH");
            _KeyWords.Add("FILE");
            _KeyWords.Add("FILTER");
            _KeyWords.Add("FINAL");
            _KeyWords.Add("FIRST");
            _KeyWords.Add("FIRST_VALUE");
            _KeyWords.Add("FLAG");
            _KeyWords.Add("FLOAT");
            _KeyWords.Add("FLOOR");
            _KeyWords.Add("FOLLOWING");
            _KeyWords.Add("FOR");
            _KeyWords.Add("FORCE");
            _KeyWords.Add("FOREIGN");
            _KeyWords.Add("FORTRAN");
            _KeyWords.Add("FORWARD");
            _KeyWords.Add("FOUND");
            _KeyWords.Add("FRAME_ROW");
            _KeyWords.Add("FREE");
            _KeyWords.Add("FREEZE");
            _KeyWords.Add("FROM");
            _KeyWords.Add("FS");
            _KeyWords.Add("FULL");
            _KeyWords.Add("FUNCTION");
            _KeyWords.Add("FUNCTIONS");
            _KeyWords.Add("FUSION");
            _KeyWords.Add("G");
            _KeyWords.Add("GENERAL");
            _KeyWords.Add("GENERATED");
            _KeyWords.Add("GET");
            _KeyWords.Add("GLOBAL");
            _KeyWords.Add("GO");
            _KeyWords.Add("GOTO");
            _KeyWords.Add("GRANT");
            _KeyWords.Add("GRANTED");
            _KeyWords.Add("GREATEST");
            _KeyWords.Add("GROUP");
            _KeyWords.Add("GROUPING");
            _KeyWords.Add("GROUPS");
            _KeyWords.Add("HANDLER");
            _KeyWords.Add("HAVING");
            _KeyWords.Add("HEADER");
            _KeyWords.Add("HEX");
            _KeyWords.Add("HIERARCHY");
            _KeyWords.Add("HOLD");
            _KeyWords.Add("HOUR");
            _KeyWords.Add("ID");
            _KeyWords.Add("IDENTITY");
            _KeyWords.Add("IF");
            _KeyWords.Add("IGNORE");
            _KeyWords.Add("ILIKE");
            _KeyWords.Add("IMMEDIATE");
            _KeyWords.Add("IMMEDIATELY");
            _KeyWords.Add("IMMUTABLE");
            _KeyWords.Add("IMPLEMENTATION");
            _KeyWords.Add("IMPLICIT");
            _KeyWords.Add("IMPORT");
            _KeyWords.Add("IN");
            _KeyWords.Add("INCLUDING");
            _KeyWords.Add("INCREMENT");
            _KeyWords.Add("INDENT");
            _KeyWords.Add("INDEX");
            _KeyWords.Add("INDEXES");
            _KeyWords.Add("INDICATOR");
            _KeyWords.Add("INHERIT");
            _KeyWords.Add("INHERITS");
            _KeyWords.Add("INITIALLY");
            _KeyWords.Add("INLINE");
            _KeyWords.Add("INNER");
            _KeyWords.Add("INOUT");
            _KeyWords.Add("INPUT");
            _KeyWords.Add("INSENSITIVE");
            _KeyWords.Add("INSERT");
            _KeyWords.Add("INSTANCE");
            _KeyWords.Add("INSTANTIABLE");
            _KeyWords.Add("INSTEAD");
            _KeyWords.Add("INT");
            _KeyWords.Add("INTEGER");
            _KeyWords.Add("INTEGRITY");
            _KeyWords.Add("INTERSECT");
            _KeyWords.Add("INTERSECTION");
            _KeyWords.Add("INTERVAL");
            _KeyWords.Add("INTO");
            _KeyWords.Add("INVOKER");
            _KeyWords.Add("IS");
            _KeyWords.Add("ISNULL");
            _KeyWords.Add("ISOLATION");
            _KeyWords.Add("JOIN");
            _KeyWords.Add("K");
            _KeyWords.Add("KEY");
            _KeyWords.Add("KEY_MEMBER");
            _KeyWords.Add("KEY_TYPE");
            _KeyWords.Add("LABEL");
            _KeyWords.Add("LAG");
            _KeyWords.Add("LANGUAGE");
            _KeyWords.Add("LARGE");
            _KeyWords.Add("LAST");
            _KeyWords.Add("LAST_VALUE");
            _KeyWords.Add("LATERAL");
            _KeyWords.Add("LC_COLLATE");
            _KeyWords.Add("LC_CTYPE");
            _KeyWords.Add("LEAD");
            _KeyWords.Add("LEADING");
            _KeyWords.Add("LEAKPROOF");
            _KeyWords.Add("LEAST");
            _KeyWords.Add("LEFT");
            _KeyWords.Add("LENGTH");
            _KeyWords.Add("LEVEL");
            _KeyWords.Add("LIBRARY");
            _KeyWords.Add("LIKE");
            _KeyWords.Add("LIKE_REGEX");
            _KeyWords.Add("LIMIT");
            _KeyWords.Add("LINK");
            _KeyWords.Add("LISTEN");
            _KeyWords.Add("LN");
            _KeyWords.Add("LOAD");
            _KeyWords.Add("LOCAL");
            _KeyWords.Add("LOCALTIME");
            _KeyWords.Add("LOCALTIMESTAMP");
            _KeyWords.Add("LOCATION");
            _KeyWords.Add("LOCATOR");
            _KeyWords.Add("LOCK");
            _KeyWords.Add("LOWER");
            _KeyWords.Add("M");
            _KeyWords.Add("MAP");
            _KeyWords.Add("MAPPING");
            _KeyWords.Add("MATCH");
            _KeyWords.Add("MATCHED");
            _KeyWords.Add("MATERIALIZED");
            _KeyWords.Add("MAX");
            _KeyWords.Add("MAXVALUE");
            _KeyWords.Add("MAX_CARDINALITY");
            _KeyWords.Add("MEMBER");
            _KeyWords.Add("MERGE");
            _KeyWords.Add("MESSAGE_LENGTH");
            _KeyWords.Add("MESSAGE_OCTET_LENGTH");
            _KeyWords.Add("MESSAGE_TEXT");
            _KeyWords.Add("METHOD");
            _KeyWords.Add("MIN");
            _KeyWords.Add("MINUTE");
            _KeyWords.Add("MINVALUE");
            _KeyWords.Add("MOD");
            _KeyWords.Add("MODE");
            _KeyWords.Add("MODIFIES");
            _KeyWords.Add("MODULE");
            _KeyWords.Add("MONTH");
            _KeyWords.Add("MORE");
            _KeyWords.Add("MOVE");
            _KeyWords.Add("MULTISET");
            _KeyWords.Add("MUMPS");
            _KeyWords.Add("NAME");
            _KeyWords.Add("NAMES");
            _KeyWords.Add("NAMESPACE");
            _KeyWords.Add("NATIONAL");
            _KeyWords.Add("NATURAL");
            _KeyWords.Add("NCHAR");
            _KeyWords.Add("NCLOB");
            _KeyWords.Add("NESTING");
            _KeyWords.Add("NEW");
            _KeyWords.Add("NEXT");
            _KeyWords.Add("NFC");
            _KeyWords.Add("NFD");
            _KeyWords.Add("NFKC");
            _KeyWords.Add("NFKD");
            _KeyWords.Add("NIL");
            _KeyWords.Add("NO");
            _KeyWords.Add("NONE");
            _KeyWords.Add("NORMALIZE");
            _KeyWords.Add("NORMALIZED");
            _KeyWords.Add("NOT");
            _KeyWords.Add("NOTHING");
            _KeyWords.Add("NOTIFY");
            _KeyWords.Add("NOTNULL");
            _KeyWords.Add("NOWAIT");
            _KeyWords.Add("NTH_VALUE");
            _KeyWords.Add("NTILE");
            _KeyWords.Add("NULL");
            _KeyWords.Add("NULLABLE");
            _KeyWords.Add("NULLIF");
            _KeyWords.Add("NULLS");
            _KeyWords.Add("NUMBER");
            _KeyWords.Add("NUMERIC");
            _KeyWords.Add("OBJECT");
            _KeyWords.Add("OCCURRENCES_REGEX");
            _KeyWords.Add("OCTETS");
            _KeyWords.Add("OCTET_LENGTH");
            _KeyWords.Add("OF");
            _KeyWords.Add("OFF");
            _KeyWords.Add("OFFSET");
            _KeyWords.Add("OIDS");
            _KeyWords.Add("OLD");
            _KeyWords.Add("ON");
            _KeyWords.Add("ONLY");
            _KeyWords.Add("OPEN");
            _KeyWords.Add("OPERATOR");
            _KeyWords.Add("OPTION");
            _KeyWords.Add("OPTIONS");
            _KeyWords.Add("OR");
            _KeyWords.Add("ORDER");
            _KeyWords.Add("ORDERING");
            _KeyWords.Add("ORDINALITY");
            _KeyWords.Add("OTHERS");
            _KeyWords.Add("OUT");
            _KeyWords.Add("OUTER");
            _KeyWords.Add("OUTPUT");
            _KeyWords.Add("OVER");
            _KeyWords.Add("OVERLAPS");
            _KeyWords.Add("OVERLAY");
            _KeyWords.Add("OVERRIDING");
            _KeyWords.Add("OWNED");
            _KeyWords.Add("OWNER");
            _KeyWords.Add("P");
            _KeyWords.Add("PAD");
            _KeyWords.Add("PARAMETER");
            _KeyWords.Add("PARAMETER_MODE");
            _KeyWords.Add("PARAMETER_NAME");
            _KeyWords.Add("PARAMETER_ORDINAL_POSITION");
            _KeyWords.Add("PARAMETER_SPECIFIC_CATALOG");
            _KeyWords.Add("PARAMETER_SPECIFIC_NAME");
            _KeyWords.Add("PARAMETER_SPECIFIC_SCHEMA");
            _KeyWords.Add("PARSER");
            _KeyWords.Add("PARTIAL");
            _KeyWords.Add("PARTITION");
            _KeyWords.Add("PASCAL");
            _KeyWords.Add("PASSING");
            _KeyWords.Add("PASSTHROUGH");
            _KeyWords.Add("PASSWORD");
            _KeyWords.Add("PATH");
            _KeyWords.Add("PERCENT");
            _KeyWords.Add("PERCENTILE_CONT");
            _KeyWords.Add("PERCENTILE_DISC");
            _KeyWords.Add("PERCENT_RANK");
            _KeyWords.Add("PERIOD");
            _KeyWords.Add("PERMISSION");
            _KeyWords.Add("PLACING");
            _KeyWords.Add("PLANS");
            _KeyWords.Add("PLI");
            _KeyWords.Add("PORTION");
            _KeyWords.Add("POSITION");
            _KeyWords.Add("POSITION_REGEX");
            _KeyWords.Add("POWER");
            _KeyWords.Add("PRECEDES");
            _KeyWords.Add("PRECEDING");
            _KeyWords.Add("PRECISION");
            _KeyWords.Add("PREPARE");
            _KeyWords.Add("PREPARED");
            _KeyWords.Add("PRESERVE");
            _KeyWords.Add("PRIMARY");
            _KeyWords.Add("PRIOR");
            _KeyWords.Add("PRIVILEGES");
            _KeyWords.Add("PROCEDURAL");
            _KeyWords.Add("PROCEDURE");
            _KeyWords.Add("PROGRAM");
            _KeyWords.Add("PUBLIC");
            _KeyWords.Add("QUOTE");
            _KeyWords.Add("RANGE");
            _KeyWords.Add("RANK");
            _KeyWords.Add("READ");
            _KeyWords.Add("READS");
            _KeyWords.Add("REAL");
            _KeyWords.Add("REASSIGN");
            _KeyWords.Add("RECHECK");
            _KeyWords.Add("RECOVERY");
            _KeyWords.Add("RECURSIVE");
            _KeyWords.Add("REF");
            _KeyWords.Add("REFERENCES");
            _KeyWords.Add("REFERENCING");
            _KeyWords.Add("REFRESH");
            _KeyWords.Add("REGR_AVGX");
            _KeyWords.Add("REGR_AVGY");
            _KeyWords.Add("REGR_COUNT");
            _KeyWords.Add("REGR_INTERCEPT");
            _KeyWords.Add("REGR_R2");
            _KeyWords.Add("REGR_SLOPE");
            _KeyWords.Add("REGR_SXX");
            _KeyWords.Add("REGR_SXY");
            _KeyWords.Add("REGR_SYY");
            _KeyWords.Add("REINDEX");
            _KeyWords.Add("RELATIVE");
            _KeyWords.Add("RELEASE");
            _KeyWords.Add("RENAME");
            _KeyWords.Add("REPEATABLE");
            _KeyWords.Add("REPLACE");
            _KeyWords.Add("REPLICA");
            _KeyWords.Add("REQUIRING");
            _KeyWords.Add("RESET");
            _KeyWords.Add("RESPECT");
            _KeyWords.Add("RESTART");
            _KeyWords.Add("RESTORE");
            _KeyWords.Add("RESTRICT");
            _KeyWords.Add("RESULT");
            _KeyWords.Add("RETURN");
            _KeyWords.Add("RETURNED_CARDINALITY");
            _KeyWords.Add("RETURNED_LENGTH");
            _KeyWords.Add("RETURNED_OCTET_LENGTH");
            _KeyWords.Add("RETURNED_SQLSTATE");
            _KeyWords.Add("RETURNING");
            _KeyWords.Add("RETURNS");
            _KeyWords.Add("REVOKE");
            _KeyWords.Add("RIGHT");
            _KeyWords.Add("ROLE");
            _KeyWords.Add("ROLLBACK");
            _KeyWords.Add("ROLLUP");
            _KeyWords.Add("ROUTINE");
            _KeyWords.Add("ROUTINE_CATALOG");
            _KeyWords.Add("ROUTINE_NAME");
            _KeyWords.Add("ROUTINE_SCHEMA");
            _KeyWords.Add("ROW");
            _KeyWords.Add("ROWS");
            _KeyWords.Add("ROW_COUNT");
            _KeyWords.Add("ROW_NUMBER");
            _KeyWords.Add("RULE");
            _KeyWords.Add("SAVEPOINT");
            _KeyWords.Add("SCALE");
            _KeyWords.Add("SCHEMA");
            _KeyWords.Add("SCHEMA_NAME");
            _KeyWords.Add("SCOPE");
            _KeyWords.Add("SCOPE_CATALOG");
            _KeyWords.Add("SCOPE_NAME");
            _KeyWords.Add("SCOPE_SCHEMA");
            _KeyWords.Add("SCROLL");
            _KeyWords.Add("SEARCH");
            _KeyWords.Add("SECOND");
            _KeyWords.Add("SECTION");
            _KeyWords.Add("SECURITY");
            _KeyWords.Add("SELECT");
            _KeyWords.Add("SELECTIVE");
            _KeyWords.Add("SELF");
            _KeyWords.Add("SENSITIVE");
            _KeyWords.Add("SEQUENCE");
            _KeyWords.Add("SEQUENCES");
            _KeyWords.Add("SERIALIZABLE");
            _KeyWords.Add("SERVER");
            _KeyWords.Add("SERVER_NAME");
            _KeyWords.Add("SESSION");
            _KeyWords.Add("SESSION_USER");
            _KeyWords.Add("SET");
            _KeyWords.Add("SETOF");
            _KeyWords.Add("SETS");
            _KeyWords.Add("SHARE");
            _KeyWords.Add("SHOW");
            _KeyWords.Add("SIMILAR");
            _KeyWords.Add("SIMPLE");
            _KeyWords.Add("SIZE");
            _KeyWords.Add("SMALLINT");
            _KeyWords.Add("SNAPSHOT");
            _KeyWords.Add("SOME");
            _KeyWords.Add("SOURCE");
            _KeyWords.Add("SPACE");
            _KeyWords.Add("SPECIFIC");
            _KeyWords.Add("SPECIFICTYPE");
            _KeyWords.Add("SPECIFIC_NAME");
            _KeyWords.Add("SQL");
            _KeyWords.Add("SQLCODE");
            _KeyWords.Add("SQLERROR");
            _KeyWords.Add("SQLEXCEPTION");
            _KeyWords.Add("SQLSTATE");
            _KeyWords.Add("SQLWARNING");
            _KeyWords.Add("SQRT");
            _KeyWords.Add("STABLE");
            _KeyWords.Add("STANDALONE");
            _KeyWords.Add("START");
            _KeyWords.Add("STATE");
            _KeyWords.Add("STATEMENT");
            _KeyWords.Add("STATIC");
            _KeyWords.Add("STATISTICS");
            _KeyWords.Add("STDDEV_POP");
            _KeyWords.Add("STDDEV_SAMP");
            _KeyWords.Add("STDIN");
            _KeyWords.Add("STDOUT");
            _KeyWords.Add("STORAGE");
            _KeyWords.Add("STRICT");
            _KeyWords.Add("STRIP");
            _KeyWords.Add("STRUCTURE");
            _KeyWords.Add("STYLE");
            _KeyWords.Add("SUBCLASS_ORIGIN");
            _KeyWords.Add("SUBMULTISET");
            _KeyWords.Add("SUBSTRING");
            _KeyWords.Add("SUBSTRING_REGEX");
            _KeyWords.Add("SUCCEEDS");
            _KeyWords.Add("SUM");
            _KeyWords.Add("SYMMETRIC");
            _KeyWords.Add("SYSID");
            _KeyWords.Add("SYSTEM");
            _KeyWords.Add("SYSTEM_TIME");
            _KeyWords.Add("SYSTEM_USER");
            _KeyWords.Add("T");
            _KeyWords.Add("TABLE");
            _KeyWords.Add("TABLES");
            _KeyWords.Add("TABLESAMPLE");
            _KeyWords.Add("TABLESPACE");
            _KeyWords.Add("TABLE_NAME");
            _KeyWords.Add("TEMP");
            _KeyWords.Add("TEMPLATE");
            _KeyWords.Add("TEMPORARY");
            _KeyWords.Add("TEXT");
            _KeyWords.Add("THEN");
            _KeyWords.Add("TIES");
            _KeyWords.Add("TIME");
            _KeyWords.Add("TIMESTAMP");
            _KeyWords.Add("TIMEZONE_HOUR");
            _KeyWords.Add("TIMEZONE_MINUTE");
            _KeyWords.Add("TO");
            _KeyWords.Add("TOKEN");
            _KeyWords.Add("TOP_LEVEL_COUNT");
            _KeyWords.Add("TRAILING");
            _KeyWords.Add("TRANSACTION");
            _KeyWords.Add("TRANSACTIONS_COMMITTED");
            _KeyWords.Add("TRANSACTIONS_ROLLED_BACK");
            _KeyWords.Add("TRANSACTION_ACTIVE");
            _KeyWords.Add("TRANSFORM");
            _KeyWords.Add("TRANSFORMS");
            _KeyWords.Add("TRANSLATE");
            _KeyWords.Add("TRANSLATE_REGEX");
            _KeyWords.Add("TRANSLATION");
            _KeyWords.Add("TREAT");
            _KeyWords.Add("TRIGGER");
            _KeyWords.Add("TRIGGER_CATALOG");
            _KeyWords.Add("TRIGGER_NAME");
            _KeyWords.Add("TRIGGER_SCHEMA");
            _KeyWords.Add("TRIM");
            _KeyWords.Add("TRIM_ARRAY");
            _KeyWords.Add("TRUE");
            _KeyWords.Add("TRUNCATE");
            _KeyWords.Add("TRUSTED");
            _KeyWords.Add("TYPE");
            _KeyWords.Add("TYPES");
            _KeyWords.Add("UESCAPE");
            _KeyWords.Add("UNBOUNDED");
            _KeyWords.Add("UNCOMMITTED");
            _KeyWords.Add("UNDER");
            _KeyWords.Add("UNENCRYPTED");
            _KeyWords.Add("UNION");
            _KeyWords.Add("UNIQUE");
            _KeyWords.Add("UNKNOWN");
            _KeyWords.Add("UNLINK");
            _KeyWords.Add("UNLISTEN");
            _KeyWords.Add("UNLOGGED");
            _KeyWords.Add("UNNAMED");
            _KeyWords.Add("UNNEST");
            _KeyWords.Add("UNTIL");
            _KeyWords.Add("UNTYPED");
            _KeyWords.Add("UPDATE");
            _KeyWords.Add("UPPER");
            _KeyWords.Add("URI");
            _KeyWords.Add("USAGE");
            _KeyWords.Add("USER");
            _KeyWords.Add("USER_DEFINED_TYPE_CATALOG");
            _KeyWords.Add("USER_DEFINED_TYPE_CODE");
            _KeyWords.Add("USER_DEFINED_TYPE_NAME");
            _KeyWords.Add("USER_DEFINED_TYPE_SCHEMA");
            _KeyWords.Add("USING");
            _KeyWords.Add("VACUUM");
            _KeyWords.Add("VALID");
            _KeyWords.Add("VALIDATE");
            _KeyWords.Add("VALIDATOR");
            _KeyWords.Add("VALUE");
            _KeyWords.Add("VALUES");
            _KeyWords.Add("VALUE_OF");
            _KeyWords.Add("VARBINARY");
            _KeyWords.Add("VARCHAR");
            _KeyWords.Add("VARIADIC");
            _KeyWords.Add("VARYING");
            _KeyWords.Add("VAR_POP");
            _KeyWords.Add("VAR_SAMP");
            _KeyWords.Add("VERBOSE");
            _KeyWords.Add("VERSION");
            _KeyWords.Add("VERSIONING");
            _KeyWords.Add("VIEW");
            _KeyWords.Add("VOLATILE");
            _KeyWords.Add("WHEN");
            _KeyWords.Add("WHENEVER");
            _KeyWords.Add("WHERE");
            _KeyWords.Add("WHITESPACE");
            _KeyWords.Add("WIDTH_BUCKET");
            _KeyWords.Add("WINDOW");
            _KeyWords.Add("WITH");
            _KeyWords.Add("WITHIN");
            _KeyWords.Add("WITHOUT");
            _KeyWords.Add("WORK");
            _KeyWords.Add("WRAPPER");
            _KeyWords.Add("WRITE");
            _KeyWords.Add("XML");
            _KeyWords.Add("XMLAGG");
            _KeyWords.Add("XMLATTRIBUTES");
            _KeyWords.Add("XMLBINARY");
            _KeyWords.Add("XMLCAST");
            _KeyWords.Add("XMLCOMMENT");
            _KeyWords.Add("XMLCONCAT");
            _KeyWords.Add("XMLDECLARATION");
            _KeyWords.Add("XMLDOCUMENT");
            _KeyWords.Add("XMLELEMENT");
            _KeyWords.Add("XMLEXISTS");
            _KeyWords.Add("XMLFOREST");
            _KeyWords.Add("XMLITERATE");
            _KeyWords.Add("XMLNAMESPACES");
            _KeyWords.Add("XMLPARSE");
            _KeyWords.Add("XMLPI");
            _KeyWords.Add("XMLQUERY");
            _KeyWords.Add("XMLROOT");
            _KeyWords.Add("XMLSCHEMA");
            _KeyWords.Add("XMLSERIALIZE");
            _KeyWords.Add("XMLTABLE");
            _KeyWords.Add("XMLTEXT");
            _KeyWords.Add("XMLVALIDATE");
            _KeyWords.Add("YEAR");
            _KeyWords.Add("YES");
            _KeyWords.Add("ZONE");
        }
    }
}
